Decision-directed loops are loops that use detected decisions to estimate a parameter and control an adaptive loop. Decision-directed loops are commonly used in communication systems to automatically estimate and track changing system parameters and reduce errors due to changing noise conditions. Examples of common decision-directed loops are timing tracking loops (decision-directed phase-locked-loop, or DD-PLL), automatic gain control (AGC), and baseline (or DC) wander compensation circuits.
Traditional decision-directed loops use detector decisions to estimate a system parameter, and then feed back the estimate to the input samples to improve the detection quality. An example of this is a simple baseline wander compensation circuit described in FIG. 1.
In many communication systems, the input signal is assumed to have a constant, known reference level, or baseline. Channel noise, however, may cause the reference level to wander, or the reference level may be constant but non-zero. The reference level is also sometimes known as the DC level, so this is often referred to as DC wander or baseline wander. In many communication systems, DC wander or baseline wander has a negative effect on the detector performance.
A simple way to combat baseline wander is to use the detector decisions to estimate the baseline offset, feed the estimate back to the input samples, and subtract off the estimate. The detector, for example a Viterbi detector, usually needs several samples to issue a decision. Then the decision-directed estimate of the baseline offset that is fed back is delayed. This means that the estimate is older than the samples that the estimate is applied to. If the state of the baseline offset has changed in the time it takes to estimate the offset, then the applied correction may not be effective.
FIG. 1 shows an example of a simple baseline wander correction loop 100. The noisy input samples yk are fed to a detector 110, which estimates the transmitted information bits {circumflex over (b)}k. If the detector 110 has a delay of N, then the estimated bits will come out delayed as {circumflex over (b)}k-N. For example, when the detector 110 is a Viterbi detector, the Viterbi traceback delay can be represented as N bits or states.
The samples yk may have an offset error due to baseline wander. An estimate of the baseline offset can be computed as the difference between the noisy sample yk and a reconstructed estimate of the sample ŷk. In the example of a partial response, maximum likelihood (PRML) magnetic recording system, the reconstruction filter 120 simply convolves the decisions {circumflex over (b)}k-N of the detector 110 and the PRML polynomial Hk to produce the reconstructed sample ŷk-N. Before taking the difference between yk and ŷk-N, the samples yk are delayed by N in delay circuit 130 to align the samples yk to ŷk-N.
Taking the difference between the delayed samples of y, (i.e., yk-N) and ŷk-N using adder 140 produces the error signal ek-N. To reduce estimation noise and smooth the estimate, the error signal is passed through a Low-Pass-Filter (LPF) 150.
The LPF 150 may have one of several embodiments, depending on the application. Often, a simple auto-regressive (AR) LPF is used, because an AR LPF can be implemented easily as an infinite-impulse-response (IIR) filter. A simple first-order A R LPF can have the recursive response:yk=α·yk-1β·xk  (1)where xk is the LPF input, yk is the LPF output, and α and β are parameters that control the shape of the LPF response.
The LPF 150 may also be implemented as a moving-average (MA) filter. A MA LPF has a finite memory, whereas the AR LPF has an infinite memory. The finite memory of the MA LPF can be helpful to reduce the effect of prior noisy inputs. The MR LPF has the form (2):
                              y          k                =                              ∑                          i              =              0                                      L              -              1                                ⁢                                    w              i                        ·                          x                              k                -                i                                                                        (        2        )            where xk is the LPF input, yk is the LPF output, and wi are a set of tap weights that control the shape of the LPF response. The simplest embodiment is to let all wi equal some constant C. The LPF 150 may also be implemented as more complicated filters such as a raised-cosine filter or Butterworth filter.
The LPF output is a smoothed estimate of the correction factor ck-N′. The correction factor is subtracted from the input yk to reduce the baseline offset. Note that the correction factor is delayed with respect to the input samples by N″ samples. If the baseline offset is slow moving and has not changed much in N″ samples, then the correction factor may be effective in reducing the baseline offset. However, if the baseline error is fast moving, then the baseline offset in y, at the correction point (i.e., adder 160) may be different than the estimate in ck-N*. Thus, the detector (and LPF) delay N″ limits the effectiveness of the baseline wander correction loop 100.